package com.ruoyi.worker.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @ClassName OperationalRequirementsTable
 * @Description 运营需求(二期)对象
 * @Author leizhang
 * Date 2021/12/23 2:36 PM
 * @Version 1.0
 **/
public class OperationalRequirementsTable implements Serializable {
    private static final long serialVersionUID = -1221L;
    private List<Map<String, Object>> equipments;
    private List<String> urls;
    private List<Map<String, Object>> deps;
    private String schemeConfigurationName;
    private List<Map<String,Object>> auditLogs;
    /**
     * 运营需求主表id
     */
    private  Integer id;

    /**
     * 需求单号
     */
    @Excel(name = "需求单号")
    private String operationalOrderCode;

    /**
     * 用工日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workTime;

    /**
     * 班次名称
     */
    @Excel(name = "班次名称")
    private String timeShiftName;

    /**
     * 班次id
     */
    @Excel(name = "班次id")
    private Long timeShiftId;

    /**
     * 班组名称
     */
    @Excel(name = "班组名称")
    private String groupName;

    /**
     * 班组id
     */
    @Excel(name = "班组id")
    private Long groupId;

    /**
     * 预测24小时(万件)
     */
    @Excel(name = "预测24小时(万件)")
    private Double forecast24;

    /**
     * 预测12h(万件)
     */
    @Excel(name = "预测12h(万件)")
    private Double forecast12;

    /**
     * 省内未发(万件)
     */
    @Excel(name = "省内未发(万件)")
    private Double notSentNumber;

    /**
     * 待卸载量(万件)
     */
    @Excel(name = "待卸载量(万件)")
    private Double quantityToUnloaded;

    /**
     * 辆
     */
    @Excel(name = "辆")
    private Long carNumber;

    /**
     * 班组遗留(万件)
     */
    @Excel(name = "班组遗留(万件)")
    private Double bequeathNumber;

    /**
     * 预估业务量
     */
    @Excel(name = "预估业务量")
    private Double estimateBusinessNumber;

    /**
     * 当班预测量(万件)
     */
    @Excel(name = "当班预测量(万件)")
    private Double groupEstimateNumber;

    /**
     * 方案id
     */
    @Excel(name = "方案id")
    private Long schemeConfigurationId;

    /**
     * 标准人数
     */
    @Excel(name = "标准人数")
    private Long standardNumber;

    /**
     * 建议人数
     */
    @Excel(name = "建议人数")
    private Long recommendedNumber;

    /**
     * 预估用人数
     */
    @Excel(name = "预估用人数")
    private Long estimateWorkerNumber;

    /**
     * 预估人效(件)
     */
    @Excel(name = "预估人效(件)")
    private Long estimateEffect;

    /**
     * 预估人效百分比
     */
    @Excel(name = "预估人效百分比")
    private Double estimateEffectPercentage;

    /**
     * 零工百分比_男
     */
    @Excel(name = "零工百分比_男")
    private Double oddJobMale;

    /**
     * 零工百分比_女
     */
    @Excel(name = "零工百分比_女")
    private Double oddJobFemale;

    /**
     * 排班人数
     */
    @Excel(name = "排班人数")
    private Long personnelRosterNumber;

    /**
     * 零工人数
     */
    @Excel(name = "零工人数")
    private Long personnelOddNumber;

    /**
     * 人事预估用人
     */
    @Excel(name = "人事预估用人")
    private Long personnelEstimateNumber;

    /**
     * 预估人效比
     */
    @Excel(name = "预估人效比")
    private Double personnelEstimatePercentage;

    /**
     * 用人超额比
     */
    @Excel(name = "用人超额比")
    private Double personnelExcessPercentage;

    /**
     * 用工超控比
     */
    @Excel(name = "用工超控比")
    private Double personnelOverridePercentage;

    /**
     * 出勤长期工
     */
    @Excel(name = "出勤长期工")
    private Long attendanceWorkerNumber;

    /**
     * 出勤临时工
     */
    @Excel(name = "出勤临时工")
    private Long attendanceOddNumber;

    /**
     * 时间完成(万件)
     */
    @Excel(name = "时间完成(万件)")
    private Double actualFinalNumber;

    /**
     * 实际人数
     */
    @Excel(name = "实际人数")
    private Long actualWorkerNumber;

    /**
     * 运营需求单状态 1-件量预测提交待审核 2-件量审核通过 3-件量审核未通过
     * 4-用工评估审核成功 5- 用工评估审核失败 6-零工预测审核成功 7-零工预测审核失败 8-方案审核成功 9-方案审核失败
     * 10-用工完结审核成功 11 用工完结审核失败
     */
    @Excel(name = "运营需求单状态 ")
    private Integer status;

    private Integer taskNode;

    private String uploadFiles;

    private Date updateTime;

    private String remark;

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<Map<String, Object>> getEquipments() {
        return equipments;
    }

    public void setEquipments(List<Map<String, Object>> equipments) {
        this.equipments = equipments;
    }

    public List<String> getUrls() {
        return urls;
    }

    public void setUrls(List<String> urls) {
        this.urls = urls;
    }

    public OperationalRequirementsTable() {
    }

    public OperationalRequirementsTable(Integer id, Integer status, Integer taskNode) {
        this.id = id;
        this.status = status;
        this.taskNode = taskNode;
    }
    public OperationalRequirementsTable(Integer id, Integer status, Integer taskNode,Date date) {
        this.id = id;
        this.status = status;
        this.taskNode = taskNode;
        this.updateTime = date;
    }

    public List<Map<String, Object>> getDeps() {
        return deps;
    }

    public void setDeps(List<Map<String, Object>> deps) {
        this.deps = deps;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    private List<Map<String,Object>> staffings;

    public List<Map<String, Object>> getStaffings() {
        return staffings;
    }

    public void setStaffings(List<Map<String, Object>> staffings) {
        this.staffings = staffings;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getOperationalOrderCode() {
        return operationalOrderCode;
    }

    public void setOperationalOrderCode(String operationalOrderCode) {
        this.operationalOrderCode = operationalOrderCode;
    }

    public Date getWorkTime() {
        return workTime;
    }

    public void setWorkTime(Date workTime) {
        this.workTime = workTime;
    }

    public String getTimeShiftName() {
        return timeShiftName;
    }

    public void setTimeShiftName(String timeShiftName) {
        this.timeShiftName = timeShiftName;
    }

    public Long getTimeShiftId() {
        return timeShiftId;
    }

    public void setTimeShiftId(Long timeShiftId) {
        this.timeShiftId = timeShiftId;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public Long getGroupId() {
        return groupId;
    }

    public void setGroupId(Long groupId) {
        this.groupId = groupId;
    }

    public Double getForecast24() {
        return forecast24;
    }

    public void setForecast24(Double forecast24) {
        this.forecast24 = forecast24;
    }

    public Double getForecast12() {
        return forecast12;
    }

    public void setForecast12(Double forecast12) {
        this.forecast12 = forecast12;
    }

    public Double getNotSentNumber() {
        return notSentNumber;
    }

    public void setNotSentNumber(Double notSentNumber) {
        this.notSentNumber = notSentNumber;
    }

    public Double getQuantityToUnloaded() {
        return quantityToUnloaded;
    }

    public void setQuantityToUnloaded(Double quantityToUnloaded) {
        this.quantityToUnloaded = quantityToUnloaded;
    }

    public Long getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(Long carNumber) {
        this.carNumber = carNumber;
    }

    public Double getBequeathNumber() {
        return bequeathNumber;
    }

    public void setBequeathNumber(Double bequeathNumber) {
        this.bequeathNumber = bequeathNumber;
    }

    public Double getEstimateBusinessNumber() {
        return estimateBusinessNumber;
    }

    public void setEstimateBusinessNumber(Double estimateBusinessNumber) {
        this.estimateBusinessNumber = estimateBusinessNumber;
    }

    public Double getGroupEstimateNumber() {
        return groupEstimateNumber;
    }

    public void setGroupEstimateNumber(Double groupEstimateNumber) {
        this.groupEstimateNumber = groupEstimateNumber;
    }

    public Long getSchemeConfigurationId() {
        return schemeConfigurationId;
    }

    public void setSchemeConfigurationId(Long schemeConfigurationId) {
        this.schemeConfigurationId = schemeConfigurationId;
    }

    public Long getStandardNumber() {
        return standardNumber;
    }

    public void setStandardNumber(Long standardNumber) {
        this.standardNumber = standardNumber;
    }

    public Long getRecommendedNumber() {
        return recommendedNumber;
    }

    public void setRecommendedNumber(Long recommendedNumber) {
        this.recommendedNumber = recommendedNumber;
    }

    public Long getEstimateWorkerNumber() {
        return estimateWorkerNumber;
    }

    public void setEstimateWorkerNumber(Long estimateWorkerNumber) {
        this.estimateWorkerNumber = estimateWorkerNumber;
    }

    public Long getEstimateEffect() {
        return estimateEffect;
    }

    public void setEstimateEffect(Long estimateEffect) {
        this.estimateEffect = estimateEffect;
    }

    public Double getEstimateEffectPercentage() {
        return estimateEffectPercentage;
    }

    public void setEstimateEffectPercentage(Double estimateEffectPercentage) {
        this.estimateEffectPercentage = estimateEffectPercentage;
    }

    public Double getOddJobMale() {
        return oddJobMale;
    }

    public void setOddJobMale(Double oddJobMale) {
        this.oddJobMale = oddJobMale;
    }

    public Double getOddJobFemale() {
        return oddJobFemale;
    }

    public void setOddJobFemale(Double oddJobFemale) {
        this.oddJobFemale = oddJobFemale;
    }

    public Long getPersonnelRosterNumber() {
        return personnelRosterNumber;
    }

    public void setPersonnelRosterNumber(Long personnelRosterNumber) {
        this.personnelRosterNumber = personnelRosterNumber;
    }

    public Long getPersonnelOddNumber() {
        return personnelOddNumber;
    }

    public void setPersonnelOddNumber(Long personnelOddNumber) {
        this.personnelOddNumber = personnelOddNumber;
    }

    public Long getPersonnelEstimateNumber() {
        return personnelEstimateNumber;
    }

    public void setPersonnelEstimateNumber(Long personnelEstimateNumber) {
        this.personnelEstimateNumber = personnelEstimateNumber;
    }

    public Double getPersonnelEstimatePercentage() {
        return personnelEstimatePercentage;
    }

    public void setPersonnelEstimatePercentage(Double personnelEstimatePercentage) {
        this.personnelEstimatePercentage = personnelEstimatePercentage;
    }

    public Double getPersonnelExcessPercentage() {
        return personnelExcessPercentage;
    }

    public void setPersonnelExcessPercentage(Double personnelExcessPercentage) {
        this.personnelExcessPercentage = personnelExcessPercentage;
    }

    public Double getPersonnelOverridePercentage() {
        return personnelOverridePercentage;
    }

    public void setPersonnelOverridePercentage(Double personnelOverridePercentage) {
        this.personnelOverridePercentage = personnelOverridePercentage;
    }

    public Long getAttendanceWorkerNumber() {
        return attendanceWorkerNumber;
    }

    public void setAttendanceWorkerNumber(Long attendanceWorkerNumber) {
        this.attendanceWorkerNumber = attendanceWorkerNumber;
    }

    public Long getAttendanceOddNumber() {
        return attendanceOddNumber;
    }

    public void setAttendanceOddNumber(Long attendanceOddNumber) {
        this.attendanceOddNumber = attendanceOddNumber;
    }

    public Double getActualFinalNumber() {
        return actualFinalNumber;
    }

    public void setActualFinalNumber(Double actualFinalNumber) {
        this.actualFinalNumber = actualFinalNumber;
    }

    public Long getActualWorkerNumber() {
        return actualWorkerNumber;
    }

    public void setActualWorkerNumber(Long actualWorkerNumber) {
        this.actualWorkerNumber = actualWorkerNumber;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getTaskNode() {
        return taskNode;
    }

    public void setTaskNode(Integer taskNode) {
        this.taskNode = taskNode;
    }

    public String getUploadFiles() {
        return uploadFiles;
    }

    public void setUploadFiles(String uploadFiles) {
        this.uploadFiles = uploadFiles;
    }

    public String getSchemeConfigurationName() {
        return schemeConfigurationName;
    }

    public void setSchemeConfigurationName(String schemeConfigurationName) {
        this.schemeConfigurationName = schemeConfigurationName;
    }

    public List<Map<String, Object>> getAuditLogs() {
        return auditLogs;
    }

    public void setAuditLogs(List<Map<String, Object>> auditLogs) {
        this.auditLogs = auditLogs;
    }
}
